package com.shop.cereshop.commons.domain.kuaidi.kd100.order.resp;

import lombok.*;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class PlaceAnOrderCallbackParam {
    /**
     * 快递公司的编码，一律用小写字母，见《快递公司编码》
     * 是否必填：是
     */
    private String kuaidicom;

    /**
     * 快递单号，单号的最大长度是32个字符
     * 是否必填：是
     */
    private String kuaidinum;

    /**
     * 状态码
     * 是否必填：是
     */
    private String status;

    /**
     * 状态描述
     * 是否必填：是
     */
    private String message;

    /**
     * 订单内容
     * 是否必填：是
     */
    private PlaceAnOrderCallbackData data;

    /**
     * 订单内容数据结构
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class PlaceAnOrderCallbackData {
        /**
         * 平台订单ID
         * 是否必填：是
         */
        private String orderId;

        /**
         * 订单状态，0：'下单成功'；1：'已接单'；2：'收件中'；9：'用户主动取消'；10：'已取件'；101：'运输中'；11：'揽货失败'；12：'已退回'；13：'已签收'；14：'异常签收'；99：'订单已取消'；101：'运输中'；200：'已出单'；201：'出单失败'；610：'下单失败'；155：'修改重量'(注意需要在工单系统中发起异常反馈并由快递100服务人员确认调重后才会有此状态回调，回调内容包含修改重量后的重量、运费、费用明细、业务类型)；166：订单复活（订单被取消，但是实际包裹已经发出，正常计费）；400：派送中
         * 是否必填：是
         */
        private Integer status;

        /**
         * 快递员姓名
         * 是否必填：否
         */
        private String courierName;

        /**
         * 快递员电话
         * 是否必填：否
         */
        private String courierMobile;

        /**
         * 重量
         * 是否必填：否
         */
        private String weight;

        /**
         * 运费
         * 是否必填：否
         */
        private String freight;

        /**
         * 查询密钥，调用实时快递查询接口时入参此字段可免费查询该快递单号，一个快递单号对应一个密钥。
         * 是否必填：是
         */
        private String pollToken;
    }


}
